/**
A cash register totals up sales and computes change due.
*/
public class CashRegister
{
/**
Constructs a cash register with no money in it.
*/
public CashRegister()
{
purchase = 0;
payment = 0;
}
/**
Records the sale of an item.
@param amount the price of the item
*/
public void recordPurchase(double amount)
{
double newTotal = purchase + amount;
purchase = newTotal;
}
/**
Enters the payment received from the customer.
@param amount the amount of the payment
*/
public void enterPayment(double amount)
{
payment = amount;
}
/**
Computes the change due.
@param coinType the type of coins to use when giving change
@return the number of coins of the given type in the change
*/
public int giveChange(Coin coinType)
{
if (payment <= purchase)
return 0;
int change = (int) ((payment - purchase) / coinType.getValue());
payment = payment - change * coinType.getValue();
if (payment == purchase)
{
payment = 0;
purchase = 0;
}
return change;
}
private double purchase;
private double payment;
}